Skip to content

feat: 24/7 autonomous agent discovery and outbound hunter system#175

Merged
Timwal78 merged 1 commit into
mainfrom
claude/agent-discovery-outbound-7xucnh
Jun 16, 2026
Merged

feat: 24/7 autonomous agent discovery and outbound hunter system#175
Timwal78 merged 1 commit into
mainfrom
claude/agent-discovery-outbound-7xucnh

Conversation

@Timwal78

Copy link
Copy Markdown
Owner

Summary

Three new components that actively pull autonomous agents into the SqueezeOS payment funnel rather than waiting for organic discovery:

  • Registry Broadcaster (outbound/broadcaster.py) — monitors GitHub for new MCP registries and agent directories, auto-submits capability cards the moment they appear
  • Agent-to-Agent Hustler (outbound/hustler.py) — finds newly launched trading bot repos, delivers a free HMAC-signed live signal sample directly to their public endpoints
  • Agent Interceptor (core/api/agent_interceptor.py) — after_request hook that injects X-SML-Discovery, X-SML-MCP, Link, and X-SML-Payment headers on every AI agent response
  • 402 Enhancement (proof402_integration.py) — 402 responses now include x402-standard fields (x402Version, accepts[]) compatible with Coinbase CDP / AP2 clients, plus a discovery block with free endpoint links so agents self-onboard

How it works

Registry Broadcaster

Every 1h:
  → GitHub search: topics mcp-registry, agent-directory, llms-txt-directory (last 7 days)
  → Try API submission to each discovered registry homepage
  → Fallback: open GitHub issue with capability card + MCP client config snippet
  → Known stable registries (awesome-mcp-servers, modelcontextprotocol/servers) hit on first run
  → Persistent state (outbound/state/submitted.json) prevents re-submission

Agent-to-Agent Hustler

Every 2h (staggered 30min after broadcaster):
  → GitHub search: topics ai-trading, mcp-finance, trading-bot (last 3 days, 0-20 stars)
  → Probe /api/signal, /webhook, /events, /api/ingest on discovered live endpoints
  → POST HMAC-SHA256 signed IWM signal sample with verify instructions
  → Fallback: GitHub issue with the sample + integration snippet
  → Max 5 drops per cycle, persistent state

Agent Interceptor (inbound)

Every AI agent request (Claude, GPT, Gemini, Perplexity, LangChain, etc.):
  → Inject response headers:
      X-SML-Discovery: <agents.json URL>
      X-SML-MCP: <mcp endpoint>
      X-SML-Free-Preview: /api/preview/IWM
      X-SML-Payment: x402; currency=RLUSD; network=XRPL; ...
      Link: <agents.json>; rel="agent-discovery", <mcp.json>; rel="mcp-server"
  → First-contact: fire AGENT_FIRST_CONTACT SSE event for operator dashboard

402 Body (x402 standard)

{
  "x402Version": 1,
  "error": "X402",
  "accepts": [{ "scheme": "exact", "network": "xrpl", "asset": "RLUSD", "payTo": "...", ... }],
  "discovery": { "agents_json": "...", "mcp_json": "...", "free_endpoints": [...] },
  ...existing SML fields preserved...
}

Deployment

Add GITHUB_TOKEN secret to the sml-outbound-hunter Render worker in the dashboard. The worker is defined in render.yaml and runs python outbound/main.py on the same Docker image as the main API.

Test plan

  • Verify outbound/broadcaster.py smoke: python -c "from outbound.broadcaster import _capability_card; print(_capability_card()['name'])"
  • Verify outbound/hustler.py smoke: python -c "from outbound.hustler import _sign; print(_sign({'test': 1}))"
  • Confirm X-SML-Discovery header appears on a request with User-Agent: ClaudeBot/1.0
  • Hit /api/council without token — verify 402 body contains x402Version and discovery.free_endpoints
  • Deploy sml-outbound-hunter worker on Render with GITHUB_TOKEN set

https://claude.ai/code/session_018h9Lpk8hYsMhJCKgasUYy8


Generated by Claude Code

Three new components that actively pull autonomous agents into the SqueezeOS
payment funnel rather than waiting for organic discovery:

**Registry Broadcaster** (outbound/broadcaster.py)
- Monitors GitHub for new repos with mcp-registry, agent-directory,
  llms-txt-directory, and related topics (7-day lookback)
- Auto-submits SqueezeOS capability cards to discovered registries via
  their submission APIs; falls back to GitHub issues for list-style repos
- Targets known stable registries (awesome-mcp-servers, modelcontextprotocol/servers)
  on first run; persistent state prevents re-submission
- Rate-limited to 8 submissions per cycle, 1-hour interval

**Agent-to-Agent Hustler** (outbound/hustler.py)
- Scans GitHub for newly launched trading bot repos (0-20 stars, last 3 days)
  with mcp-finance, ai-trading, algorithmic-trading, and related topics
- Discovers live endpoints from homepage/agents.json/render.yaml
- Delivers HMAC-SHA256 signed live IWM signal sample directly to the bot's
  /api/signal, /webhook, /events, or similar paths
- Falls back to a GitHub issue drop when no endpoint is reachable
- Rate-limited to 5 drops per cycle, 2-hour interval with 30-min initial delay

**Agent Interceptor** (core/api/agent_interceptor.py)
- after_request hook registered in create_app() for all AI agent User-Agents
  (Claude, GPT, Gemini, Perplexity, LangChain, etc.)
- Injects X-SML-Discovery, X-SML-MCP, X-SML-Free-Preview, X-SML-Payment,
  and Link headers on every AI response — zero I/O, sub-millisecond
- Fires AGENT_FIRST_CONTACT SSE event on first contact from each new agent

**402 Body Enhancement** (proof402_integration.py)
- 402 responses now include x402-standard fields (x402Version, accepts[])
  compatible with Coinbase CDP / AP2 agent payment clients
- Added discovery block with agents.json, mcp.json, and free_endpoints links
  so agents that hit a premium endpoint first can self-onboard

**Render Deployment** (render.yaml)
- New sml-outbound-hunter worker service runs outbound/main.py
- Broadcaster and hustler run in parallel threads, staggered by 30 min
- Requires GITHUB_TOKEN secret in Render dashboard

https://claude.ai/code/session_018h9Lpk8hYsMhJCKgasUYy8
@vercel

vercel Bot commented Jun 15, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
signal-auction-loom Building Building Preview Jun 15, 2026 11:26pm
squeeze-os Ready Ready Preview, Comment Jun 15, 2026 11:26pm

@Timwal78 Timwal78 marked this pull request as ready for review June 16, 2026 00:57
@Timwal78 Timwal78 merged commit 6614f1a into main Jun 16, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants